草庐IT

Ruby File 类和方法

全部标签

methods - Go:方法调用后对象不持久

我正在尝试为我正在编写的程序实现MarshalBinary和UnmarshalBinary,但在调用UnmarshalBinary后,我的更改似乎并没有持续存在。我的MWE:packagemainimport("encoding/binary""fmt""strconv")typeteststruct{var1uint32var2uint32}func(selftest)MarshalBinary()([]byte,error){tmp:=make([]byte,8)binary.BigEndian.PutUint32(tmp[0:4],self.var1)binary.BigEndi

go - 是否有内置方法来获取减去查询字符串的 URL?

是否有内置方法来获取URL中减去查询字符串的部分?喜欢来自http://example.com/?search=test的http://example.com/?从URL结构的字段(或者甚至通过拆分问号字符)进行组装很简单,所以我不是在寻找示例代码。这只是一个简单的问题,看看它是否在源代码/文档中,我错过了它。谢谢! 最佳答案 没有。没有针对您的确切用例的便捷功能。但是,您可以使用net/url包来创建一个:http://play.golang.org/p/Kk3EPBXMsmpackagemainimport("fmt""log"

go - 在 Go 中重新分配方法

假设我有以下内容:packagemainimport"fmt"typeI1interface{m1()}funcf1(){fmt.Println("dosomething")}funcmain(){varobjI1obj.m1=f1obj.m1()}这会产生错误./empty.go:16:cannotassigntoobj.m1为什么我不能分配给“方法字段”?在C中,我可以传递函数指针。Go中的等价物是什么? 最佳答案 你不能把一个函数赋值给一个接口(interface),你可以为一个结构赋值,例如:typeS1struct{m1f

templates - 在 go html 模板中创建循环的最佳方法是什么?

我正在尝试通过html/templateGo包创建一个用于显示帖子的html模板。我还想在我的页面上进行分页,每页显示5个帖子。因此,我从我的帖子存储库中获取帖子计数,将其除以每页帖子值并四舍五入(ceil)。这是当前可用帖子的总页数。我将总页数传递到我的html模板。现在,在我的html模板中,我需要显示页面按钮从1到总数。在text/html包中有一个关于如何使用管道的很棒的文档,但我没有找到任何创建简单循环的示例。我找到了解决方案,但我不确定它是否合适。我不仅可以向模板传递总页数,还可以传递一组可用页面,因此在我的模板中我可以执行类似以下操作:{{range.pages}}{{.

perl - 使用 Go 将文本文件从硬盘读取到内存的最快方法是什么?

我在使用Perl多年后才开始使用Go,从最初的测试来看,从硬盘驱动器读取文本文件到散列中的速度似乎不如Perl。在Perl中,我使用“File::Slurp”模块,它有助于非常快地将文件读入内存(读入字符串变量、数组或散列)——在硬盘读取吞吐量的限制下。我不确定使用Go阅读的最佳方式是什么,例如500MBCSV文件,其中10列存入内存(进入哈希),其中哈希的键是第一列,值是其余9列。实现此目标的最快方法是什么?目标是读取并存储到一些Go内存变量中,速度与硬盘驱动器传输数据的速度一样快。这是输入文件中的一行-大约有2000万行:1341,2014-11-0100:01:23.588,12

go - Gorilla xmlrpc 的小写方法

我正在使用GorillaXMLRPC.根据示例,func(h*HelloService)Say(r*http.Request,args*struct{Whostring},reply*struct{Messagestring})error{reply.Message="Hello,"+args.Who+"!"returnnil}和RPC.RegisterService(new(HelloService),"")给我一个服务HelloService.Say()。我想要helloService.say()。我能够通过将注册函数修改为RPC.RegisterService(new(Hello

types - 在 Go 中调用嵌入式类型的重载方法的正确方法

我有一个界面:packagepkgtypeBaseInterfaceinterface{funcNifty()boolfuncOther1()funcOther2()...funcOther34123()}以及实现它的结构:packagepkgtypeImplstruct{}func(Impl)Nifty()bool{...}然后是另一个想要嵌入第一个并做它自己的Nifty()的结构:packagemyOtherPackageimport"pkg"typeImplToostruct{*pkg.Impl}func(itImplToo)Nifty()bool{...somethingels

go - 如何在方法中修改类型 slice ?

如何在方法内部修改类型slice?我试过http://play.golang.org/p/ul2n8mk6yetypeTest[]stringfunc(testTest)Add(strstring){test=append(test,str)}funcmain(){test:=Test{}test.Add("value")fmt.Println(len(test))//0}和http://play.golang.org/p/nV9IO7E5sptypeTest[]stringfunc(test*Test)Add(strstring){v:=append(*test,str)test=&

windows - 在 Windows 服务中存储配置数据的推荐方法是什么?

因此,我使用thisAPI在Go中编写了一个Windows服务.一切正常,但我想知道在服务中存储配置数据的最佳方式是什么。通常,我使用SHGetKnownFolderPath进入AppData目录并在其中创建我的应用程序目录。然而,在服务中,这为我提供了C:/Windows/system32/config/userprofile中的路径,这在技术上很好,因为我可以在那里做我需要的,但我想知道是否有一个首选存储配置的方式。为此使用注册表更好吗?或者Windows上是否还有其他用于此目的的东西?在这种情况下,Windows系统管理员对服务有什么期望?谢谢。 最佳

go - 我如何在 Go 上模拟一个方法?

假设我有一个类型foo,其方法largerInt()调用largeInt()。我想测试largerInt(),所以我需要模拟largeInt(),因为可能有副作用。但是,我没有这样做。使用接口(interface)和组合,我可以模拟largeInt(),但在largerInt()内部,它似乎不可模拟,因为在调用它时,没有对包装类型的引用。知道怎么做吗?下面是我创建的一个片段来说明问题谢谢!packagemainimport("fmt")typefoostruct{}typemockFoostruct{*foo}typeMyInterfaceinterface{largeInt()int